# DP: disable some biarch libraries for biarch builds

---
 config-ml.in |   45 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 44 insertions(+), 1 deletions(-)

--- a/src/config-ml.in
+++ b/src/config-ml.in
@@ -306,6 +306,11 @@ arm-*-*)
 	  done
 	fi
 	;;
+i[34567]86-*-*)
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=x86_64-linux-gnu"
+	esac
+	;;
 m68*-*-*)
 	if [ x$enable_softfloat = xno ]
 	then
@@ -477,9 +482,36 @@ powerpc*-*-* | rs6000*-*-*)
 	    esac
 	  done
 	fi
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=powerpc64-linux-gnu"
+	esac
+	;;
+s390-*-*)
+	case " $multidirs " in
+	  *" 64 "*) ac_configure_args="${ac_configure_args} --host=s390x-linux-gnu"
+	esac
 	;;
 esac
 
+if [ -z "$biarch_multidir_names" ]; then
+  biarch_multidir_names="libiberty libstdc++-v3 libgfortran libmudflap libssp libffi libobjc libgomp"
+  echo "WARNING: biarch_multidir_names is unset. Use default value:"
+  echo "  $biarch_multidir_names"
+fi
+ml_srcbase=`basename $ml_realsrcdir`
+old_multidirs="${multidirs}"
+multidirs=""
+for x in ${old_multidirs}; do
+    case " $x " in
+	" 32 "|" n32 "|" 64 " )
+	case "$biarch_multidir_names" in
+	    *"$ml_srcbase"*) multidirs="${multidirs} ${x}" ;;
+	esac
+	;;
+	*) multidirs="${multidirs} ${x}" ;;
+    esac
+done
+
 # Remove extraneous blanks from multidirs.
 # Tests like `if [ -n "$multidirs" ]' require it.
 multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
@@ -857,9 +889,20 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
 	fi
     fi
 
+    ml_configure_args=
+    for arg in ${ac_configure_args}
+    do
+      case $arg in
+      *CC=*)  ml_configure_args=${ml_config_env} ;;
+      *CXX=*) ml_configure_args=${ml_config_env} ;;
+      *GCJ=*) ml_configure_args=${ml_config_env} ;;
+      *) ;;
+      esac
+    done
+
     if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \
 	--with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
-	${ac_configure_args} ${ml_config_env} ${ml_srcdiroption} ; then
+	${ac_configure_args} ${ml_configure_args} ${ml_srcdiroption} ; then
       true
     else
       exit 1
